package com.avic.modules.equipment.service.dto;

import com.avic.annotation.Query;
import lombok.Data;

import java.sql.Timestamp;
import java.util.List;
import java.util.Set;

/**
 * @author zhangzikang
 * @date 2022-08-14
 */
@Data
public class EquipmentQueryCriteria {

    // 设备编号/名称
    @Query(blurry = "equipNumber,equipName")
    private String blurry;

    // 设备名称
    @Query(propName = "id", type = Query.Type.EQUAL)
    private String ids;

    // 设备类别
    @Query(propName = "equipCategoryId", type = Query.Type.EQUAL)
    private Long equipCategoryId;

    @Query(propName = "equipCategoryId", type = Query.Type.IN)
    private Set<Long> aLLCategoryId;

    // 设备名称
    @Query(propName = "id", type = Query.Type.IN)
    private Set<String> id;

    // 设备名称
    @Query(propName = "id", type = Query.Type.NOT_IN)
    private Set<String> idAll;

    // 资产状态
    @Query(propName = "assetStatus", type = Query.Type.EQUAL)
    private Integer assetStatus;

    // 站台编号
    @Query(propName = "stackNumber", type = Query.Type.EQUAL)
    private String stackNumber;

    // 子设备
    @Query(propName = "equipSon", type = Query.Type.EQUAL)
    private String equipSon;

    // 主设备,辅助设备,配套设备
    @Query(propName = "deviceType", type = Query.Type.EQUAL)
    private Integer deviceType;

    // 生产厂家
    @Query(propName = "manufacturer", type = Query.Type.INNER_LIKE)
    private String manufacturer;

    // 健康状态
    @Query(propName = "healthStatus", type = Query.Type.NOT_EQUAL)
    private Integer healthStatus;

    // 运行状态
    @Query(propName = "runningState", type = Query.Type.EQUAL)
    private Integer runningState;

    // 购买时间
    @Query(propName = "purchaseTime", type = Query.Type.BETWEEN)
    private List<Timestamp> purchaseTime;

    private String accepts;
}
